package com.tengju.bff.interfaces.covercharge.entity.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.tengju.bff.interfaces.covercharge.entity.dto.WithdrawalReason;
import com.tengju.user.domain.annotation.Sensitive;
import com.tengju.user.domain.shared.SensitiveFieldType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

@Data
@ApiModel(value = "注册个体户申请提现记录查询结果")
public class AdminRegistrationQueryVo implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主键", required = true)
    private Integer id;

    @ApiModelProperty(value = "代理id", required = true)
    private Integer idCode;

    @Sensitive(type = SensitiveFieldType.NAME)
    @ApiModelProperty(value = "代理姓名", required = true)
    private String name;

    @Sensitive(type = SensitiveFieldType.MOBILE)
    @ApiModelProperty(value = "手机号", required = true)
    private String mobile;

    @ApiModelProperty(value = "平台", required = true)
    private String platformCode;

    @Sensitive(type = SensitiveFieldType.NAME)
    @ApiModelProperty(value = "户名", required = true)
    private String idcardName;

    @ApiModelProperty(value = "开户行", required = true)
    private String bankName;

    @Sensitive(type = SensitiveFieldType.BANKCARD_NO)
    @ApiModelProperty(value = "银行卡号", required = true)
    private String bankNo;

    @ApiModelProperty(value = "申请理由", required = true)
    private List<WithdrawalReason> applyReson;

    @ApiModelProperty(value = "个体工商户名称", required = true)
    private String merchantName;

    @Sensitive(type = SensitiveFieldType.DUTY_PARAGRAPH)
    @ApiModelProperty(value = "税号", required = true)
    private String merchantTaxNumber;

    @ApiModelProperty(value = "申请金额", required = true)
    private BigDecimal money;

    @ApiModelProperty(value = "创建时间", required = true)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime createdAt;

    @ApiModelProperty(value = "修改时间", required = true)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime updatedAt;

    @ApiModelProperty(value = "审批人", required = true)
    private String approvers;

    @ApiModelProperty(value = "审核理由|拒绝原因", required = true)
    private String remark;

    @ApiModelProperty(value = "审核状态", required = true)
    private Integer status;

    @ApiModelProperty(value = "账户渠道", required = true)
    private String channel;

}
